import request from '@/utils/request'
import categoryStorage from '@/utils/categoryStorage'

// 查询设备分类列表
export function listCategories(query) {
  return request({
    url: '/system/categories/list',
    method: 'get',
    params: query
  })
}

// 查询设备分类详细
export function getCategories(categoryId) {
  return request({
    url: '/system/categories/' + categoryId,
    method: 'get'
  })
}

// 新增设备分类
export function addCategories(data) {
  return request({
    url: '/system/categories',
    method: 'post',
    data: data
  })
}

// 修改设备分类
export function updateCategories(data) {
  return request({
    url: '/system/categories',
    method: 'put',
    data: data
  })
}

// 删除设备分类
export function delCategories(categoryId) {
  return request({
    url: '/system/categories/' + categoryId,
    method: 'delete'
  })
}

// 初始化分类数据到localStorage
export function initCategoriesStorage() {
  return new Promise((resolve, reject) => {
    // 如果localStorage中已有数据，直接返回
    if (categoryStorage.hasCategoriesData()) {
      console.log('分类数据已存在于localStorage中')
      resolve(categoryStorage.getCategoriesData())
      return
    }
    
    // 从API获取分类数据并存储
    listCategories().then(response => {
      console.log('分类API响应数据:', response)
      // 根据API文档，分类数据在rows中
      const categories = response.rows || response.data || []
      console.log('提取的分类数据:', categories)
      categoryStorage.setCategoriesData(categories)
      console.log('分类数据已初始化到localStorage')
      resolve(categories)
    }).catch(error => {
      console.error('初始化分类数据失败:', error)
      reject(error)
    })
  })
}

// 更新localStorage中的分类数据
export function updateCategoriesStorage() {
  return listCategories().then(response => {
    console.log('更新分类API响应数据:', response)
    // 根据API文档，分类数据在rows中
    const categories = response.rows || response.data || []
    console.log('提取的更新分类数据:', categories)
    categoryStorage.setCategoriesData(categories)
    console.log('localStorage中的分类数据已更新')
    return categories
  })
}
